package com.sz.mes.entity;

import java.util.Date;
import java.lang.Double;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.validator.constraints.Length;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.sz.mes.entity.BaseCustomEntity;
import com.diboot.core.binding.query.BindQuery;
import com.diboot.core.binding.query.Comparison;
import com.diboot.core.util.D;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * 请购订单 Entity定义
 * @author hem
 * @version 1.0
 * @date 2023-11-09
 * Copyright © szhs
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("request_purchase")
public class RequestPurchase extends BaseCustomEntity {

    private static final long serialVersionUID = 1420377822388277197L;

    /**
     * 审核日期
     */
    @Length(max = 100, message = "审核日期长度应小于100")
    @TableField()
    private String auditDate;

    /**
     * 单据编号
     */
    @Length(max = 100, message = "单据编号长度应小于100")
    @TableField()
    private String receiptNum;

    /**
     * 行号
     */
    @Length(max = 100, message = "行号长度应小于100")
    @TableField()
    private String receiptNumRow;

    /**
     * 业务日期
     */
    @Length(max = 100, message = "业务日期长度应小于100")
    @TableField()
    private String businessDate;

    /**
     * 请购单状态
     */
    @Length(max = 100, message = "请购单状态长度应小于100")
    @TableField()
    private String status;

    /**
     * 备注
     */
    @Length(max = 100, message = "备注长度应小于100")
    @TableField()
    private String remark;

    /**
     * 计划号
     */
    @Length(max = 100, message = "计划号长度应小于100")
    @TableField()
    private String planNum;

    /**
     * 料品.料号
     */
    @Length(max = 100, message = "料品.料号长度应小于100")
    @TableField()
    private String productNum;

    /**
     * 料品名称
     */
    @Length(max = 100, message = "料品名称长度应小于100")
    @TableField()
    private String productName;

    /**
     * 料品规格
     */
    @Length(max = 100, message = "料品规格长度应小于100")
    @TableField()
    private String specification;

    /**
     * 品名2
     */
    @Length(max = 100, message = "品名2长度应小于100")
    @TableField()
    private String productNameTwo;

    /**
     * 核准采购数量
     */
    @TableField()
    private Integer purchaseQuantity;

    /**
     * 采购单位
     */
    @Length(max = 100, message = "采购单位长度应小于100")
    @TableField()
    private String unit;

    /**
     * 要求交货日期
     */
    @Length(max = 100, message = "要求交货日期长度应小于100")
    @TableField()
    private String deliveryDate;

    /**
     * 累计转PO数量
     */
    @TableField()
    private Integer transferPoNum;

    /**
     * 累计实到数量
     */
    @TableField()
    private Integer actualQuantity;

    /**
     * 行状态
     */
    @Length(max = 100, message = "行状态长度应小于100")
    @TableField()
    private String rowStatus;

    /**
     * 创建人
     */
    @Length(max = 100, message = "创建人长度应小于100")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 审核人
     */
    @Length(max = 100, message = "审核人长度应小于100")
    @TableField()
    private String auditor;

    /**
     * 请购单行集合.备注
     */
    @Length(max = 100, message = "请购单行集合.备注长度应小于100")
    @TableField()
    private String purchaseRemark;

    /**
     * excel
     */
    @TableField()
    private String excelData;

    /**
     * 需求人员.名称
     */
    @Length(max = 100, message = "需求人员.名称长度应小于100")
    @TableField()
    private String requestPersonName;
}
